Deze vraag heeft hier al antwoorden: Hoe retourneer ik het antwoord van een asynchrone oproep? (42 antwoorden) 5 maanden geleden gesloten. Dus als de volgende code wordt uitgevoerd, is het antwoord van de console.log (ba) ongedefinieerd Maar als ik dit probeer in de Chrome V8-console, krijg ik de juiste uitvoer die ik verwacht. Ik weet niet helemaal zeker wat hier aan de hand is. laat ba; functie Setqa () { (async () => { wacht op fetch ('questions.json') . dan (res => res.json ()) .then (async (data) => { ba = wacht op gegevens; Setqa (); console.log (ba); De inhoud van het json-bestand is als volgt: "vragen": [{ "questionType": "meerdere", "question": "Hoe is het weer", "antwoorden": "", "vraag antwoord": "" "questionType": "meerdere", "question": "Hoe gaat het vandaag?", "antwoorden": " 1", "questionAnswer": "textPurpose1"
2021-02-27 08:13:01
Ik denk dat dat zou moeten werken laat ba; functie Setqa () { return fetch ('questions.json') . dan (res => res.json ()) .then (async (data) => { ba = wacht op gegevens; Setqa (). Dan (() => console.log (ba)); Maar een betere aanpak zou zijn async-functie setQa () { const res = wachten op ophalen ('questions.json'); retourneer res.json (); laat ba = wachten setQa (); Niet het antwoord waar je naar zoekt? Blader door andere vragen met de tag javascript json fetch console.log of stel uw eigen vraag.